Yes, I know how to do that. And if that were an acceptable solution, I would have done it. If you saw this situation, even your Apple-educated design mind would manage to dislike the doctrinaire solutions. You would wrestle with this for a long time (like maybe six years in the face of ongoing user complaints and requests for exactly this). And eventually you would capitulate and seek to do what I am doing.
Post
Replies
Boosts
Views
Activity
OK, maybe not calamitous, but really not helpful.
Like Google, my iPad app has one textfield. Starting to enter text there is a frequent event with immediate consequences. In normal workflow, this is all very good. But accidentally tapping that textfield is not good, and people do this. I could fix this the usual way and really slow down every user every time they enter text, or I could do something nicer like double-tap to edit. Now... do you know how to do this or not?
Thank you!
Looking further into NSMutableAttributedString, I discover that count and length are not the same thing. This affects the attribute boundaries in strange ways. Things start to work when I use length instead of count. The full solution to Problem 2, above, is not as pleasant as I would like, but I can get it to work now. Thanks for pointing me in the right direction.
Problem 1, above, when implemented wrong as I was doing before, still works-or-not depending on the colors used. Weird.
And thinking a little further, I find a plausible explanation for the weirdness in Problem 1. Not confirmation-for-sure, but probably not worth pursuing.
There is one VNode, which occupies most of the screen and never moves. Various CALayer subclass instances are added to it using VNode.layer.addSublayer. There is nothing exotic going on here, except for the moving of layers. That is how the flattened tree elements end up looking like that. The thing that is strange is that touching the flattened elements causes this problem sometime: not usually the first touch, might still work on the 50th, but probably the app has crashed before then.
Ignore this. Read the next one.